题意:有一个数轴,上面有$n$ 个传送门,使用第$i$个传送门,你可以从$x_i$ 走到 $y_i$,花费的时间为 $t_i$ 秒。你的速度为$1 $格$/$秒,有 $m$ 次询问,每次你要从 $a_i$ 走到 $b_i$,最多使用一次传送门,问最少需要多少秒。
由于坐标很大,先离散化,然后离线处理询问,然后通过调整枚举顺序与在树状数组的插入位置等处理不同情况,手推一下应该不难理解,情况如下图所示
设$x,y$为弹弓左端点与右端点,$s,t$为查询左端点与右端点
1 |
|
题意:有一个数轴,上面有$n$ 个传送门,使用第$i$个传送门,你可以从$x_i$ 走到 $y_i$,花费的时间为 $t_i$ 秒。你的速度为$1 $格$/$秒,有 $m$ 次询问,每次你要从 $a_i$ 走到 $b_i$,最多使用一次传送门,问最少需要多少秒。
由于坐标很大,先离散化,然后离线处理询问,然后通过调整枚举顺序与在树状数组的插入位置等处理不同情况,手推一下应该不难理解,情况如下图所示
设$x,y$为弹弓左端点与右端点,$s,t$为查询左端点与右端点
1 | #include <bits/stdc++.h> |